Перем ЗаписьXML, ЗаписьZIP, КаталогСкрипта, КаталогПакета, СуффиксВерсии;

Процедура ДобавитьЭлемент(Система, Архитектура, ИмяФайла)

	Файл = Новый Файл(ИмяФайла);
	Если Не Файл.Существует() Тогда
	    Возврат;
	КонецЕсли;

	Если Лев(Файл.ИмяБезРасширения, 3) = "lib" Тогда
		НовоеИмяФайла = Сред(Файл.ИмяБезРасширения, 4);
	Иначе
		НовоеИмяФайла = Файл.ИмяБезРасширения;
	КонецЕсли;
	НовоеИмяФайла = НовоеИмяФайла + СуффиксВерсии + Файл.Расширение;

	ЗаписьXML.ЗаписатьНачалоЭлемента("component");
	ЗаписьXML.ЗаписатьАтрибут("type", "native");
	ЗаписьXML.ЗаписатьАтрибут("os", Система);
	ЗаписьXML.ЗаписатьАтрибут("arch", Архитектура);
	ЗаписьXML.ЗаписатьАтрибут("path", НовоеИмяФайла);
	ЗаписьXML.ЗаписатьКонецЭлемента();

	КопироватьФайл(КаталогСкрипта + ИмяФайла, КаталогПакета + НовоеИмяФайла);
	ЗаписьZIP.Добавить(КаталогПакета + НовоеИмяФайла, РежимСохраненияПутейZIP.НеСохранятьПути);
	
КонецПроцедуры

Процедура MakePackage()

	КаталогСкрипта = ТекущийСценарий().Каталог + "/../";
	КаталогПакета = КаталогСкрипта + "bin/";
	СоздатьКаталог(КаталогПакета);

	НомерВерсии = ""; 
	СуффиксВерсии = "";
	ТекстовыйДокумент = Новый ТекстовыйДокумент;
	ТекстовыйДокумент.Прочитать(КаталогСкрипта + "version.h");
	Для НомерСтроки = 0 По ТекстовыйДокумент.КоличествоСтрок() - 1 Цикл 
		Стр = ТекстовыйДокумент.ПолучитьСтроку(НомерСтроки);
		Если СтрНайти(Стр, "VERSION_FULL") > 0 Тогда
			Стр = СтрЗаменить(Стр, Символы.Таб, " ");
			НаборСтрок = СтрРазделить(Стр, " ", Ложь);
			НомерВерсии = НаборСтрок.Получить(НаборСтрок.ВГраница());
			СуффиксВерсии = "_" + СтрЗаменить(НомерВерсии, ".", "_");
			Прервать;
		КонецЕсли;
	КонецЦикла;

	Сообщить("Номер версии: " + НомерВерсии);	

	ИмяПакета = КаталогСкрипта + "AddIn.zip";
	ИмяФайла = КаталогПакета + "MANIFEST.XML";

	УдалитьФайлы(ИмяПакета);
	ЗаписьZIP = Новый ЗаписьZipФайла(ИмяПакета); 

	ЗаписьXML = Новый ЗаписьXML;
	ЗаписьXML.ОткрытьФайл(ИмяФайла, "UTF-8", Истина);
	ЗаписьXML.ЗаписатьБезОбработки("<?xml version=""1.0"" encoding=""UTF-8""?>");	
	ЗаписьXML.ЗаписатьНачалоЭлемента("bundle");	
	ЗаписьXML.ЗаписатьАтрибут("xmlns", "http://v8.1c.ru/8.2/addin/bundle");
	
	ДобавитьЭлемент("Windows" , "i386"   , "bin/Release/VanessaExtWin32.dll");
	ДобавитьЭлемент("Windows" , "x86_64" , "bin/Release/VanessaExtWin64.dll");
	ДобавитьЭлемент("Linux"   , "i386"   , "bin/VanessaExtLin32.so");
	ДобавитьЭлемент("Linux"   , "x86_64" , "bin/VanessaExtLin64.so");
	
	ЗаписьXML.ЗаписатьКонецЭлемента();
	ЗаписьXML.Закрыть();
	
	ЗаписьZIP.Добавить(ИмяФайла, РежимСохраненияПутейZIP.НеСохранятьПути);
	ЗаписьZIP.Записать();

КонецПроцедуры

MakePackage();